package model

import (
	"gorm.io/gorm"
	"time"
)

type Ticket struct {
	Id                uint64         `gorm:"column:id;type:bigint UNSIGNED;primaryKey;not null;" json:"id"`
	TicketIdCard      string         `gorm:"column:ticket_id_card;type:char(10);comment:车编号;not null;" json:"ticket_id_card"`                         // 车编号
	TicketType        string         `gorm:"column:ticket_type;type:varchar(3);comment:车票类型: 1火车 2高铁 3飞机 4大巴;not null;" json:"ticket_type"`           // 车票类型: 1火车 2高铁 3飞机 4大巴
	TicketStart       string         `gorm:"column:ticket_start;type:varchar(255);comment:车票起始站;not null;" json:"ticket_start"`                       // 车票起始站
	TicketState       string         `gorm:"column:ticket_state;type:varchar(3);comment:车票状态: 1有座 2无座 3候补;not null;" json:"ticket_state"`             // 车票状态: 1有座 2无座 3候补
	TicketTrainNumber string         `gorm:"column:ticket_train_number;type:varchar(255);comment:车次;not null;" json:"ticket_train_number"`            // 车次
	TicketSeatType    string         `gorm:"column:ticket_seat_type;type:varchar(2);comment:座位类型: 1硬座 2软座 3硬卧 4软卧;not null;" json:"ticket_seat_type"` // 座位类型: 1硬座 2软座 3硬卧 4软卧
	TicketNumber      uint64         `gorm:"column:ticket_number;type:int;comment:车票库存;not null;" json:"ticket_number"`                               // 车票库存
	TicketPrice       float64        `gorm:"column:ticket_price;type:decimal(10, 2);comment:车票金额;not null;" json:"ticket_price"`                      // 车票金额
	CreatedAt         time.Time      `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt         time.Time      `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
	DeletedAt         gorm.DeletedAt `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}

func (t *Ticket) TableName() string {
	return "ticket"
}
